1. Field of the Invention
The present invention relates generally to interfacing personal computer systems, and in particular to portable computers with docking stations. More particularly, the present invention relates to the manner and techniques by which computer systems manage internal peripheral devices when interfacing with docking stations. Still more particularly, the invention relates to a computer system adapted to interface to a fully functional docking station without causing internal peripheral bus conflicts.
2. Background of the Invention
A personal computer system includes a number of modular components with specialized functions that cooperatively interact to realize the many features of modern computer systems. The ability of these various components to exchange data and other signals is vital to the successsful operation of a computer system. One of the critical requirements in designing a new computer system is that all system components (including those that may be added to the system by a user) must be compatible. A component is compatible if it effectively communicates and transfers data without interfering or contending with the operation of other system components.
As an example, some of the early computer systems included a processor (or CPU), random access memory (RAM), and certain peripheral devices such as a floppy drive, a keyboard and a display. These components typically were coupled together using a network of address, data and control lines, commonly referred to as a "bus." As computer technology evolved, it became common to connect additional peripheral devices to the computer through ports (such as a parallel port or a serial port), or by including the peripheral device on the main system circuit board (or "motherboard") and connecting it to the system bus. One early bus that still is in use today is the Industry Standard Architecture (ISA) bus. The ISA bus, as the name implies, was a bus standard adopted by computer manufacturers to permit the manufacturers of peripheral devices to design devices that would be compatible with most computer systems. The ISA bus includes 16 data lines and 24 address lines and operates at a clock speed of 8 MHz. A large number of peripheral components have been developed over the years to operate with the ISA protocol.
The components which couple to a given bus receive data from the other components on the same bus via the bus signal lines, and selected components may operate in turn as "bus masters" to send data to other components over the bus. Accordingly, each component on the bus circuit operates according to a protocol associated with that bus which defines the purpose of each bus signal and regulates such parameters as bus speed and arbitration between components requesting bus mastership. A bus protocol also determines the proper sequence of bus signals for transferring data over the bus. As computer systems have continued to evolve, new bus circuits offering heightened functionality have replaced older bus circuits, allowing existing components to transfer data more effectively.
One way in which the system bus has been made more effective is to permit data to be exchanged without the assistance of the CPU. To implement this design, a new bus architecture called Extended Industry Standard Architecture (EISA) was developed. The EISA bus protocol permits system components residing on the EISA bus to obtain mastership of the bus and to run cycles on the bus independently of the CPU. Another bus that has become increasingly popular is the Peripheral Component Interconnect (PCI) bus. Like the EISA bus, the PCI bus has bus master capabilities. The PCI bus operates at clock speeds of 33 MHz or faster. Current designs contemplate implementing a 66 MHz PCI bus.
If other secondary expansion buses are provided in the computer system, another bridge logic device typically is used to couple the PCI bus to that expansion bus. An example of such bridge logic is described in U.S. Pat. No. 5,634,073, assigned to Compaq Computer Corporation.
The Integrated Drive Electronics (IDE) bus is commonly implemented as a secondary bus to interface mass storage devices such as hard disk drives, floppy disk drives, and CD ROM drives. Although newer and more powerful bus architectures like the PCI bus and the Small Computer Systems Interface (SCSI) bus are capable of supporting mass storage peripherals, the IDE bus remains the most widely-adopted bus architecture for mass storage devices in personal computer systems. An IDE controller can support a maximum of up to two IDE devices. If two IDE devices connect to one IDE controller, one device is designated as the "master" and the other as the "slave," according to the IDE protocol. Also, if two IDE controllers are incorporated simultaneously into the same computer, one bus controller is designated as the "primary" with the other as the "secondary." The master/slave and primary/secondary designations facilitate the complex negotiations between multiple IDE devices and buses.
Some computers incorporate a multi-bay device connected to the IDE bus. A multi-bay configuration typically includes a plurality of independent bays connected in any master/slave, primary/secondary configuration and may support "hot-plugging" of IDE devices in the bays, or the ability to connect and disconnect these devices even while the computer is powered on.
One other type of bus architecture, the Universal Serial Bus (USB), typically supports peripheral devices external to the computer, such as video cameras, modems, joysticks, a keyboard and mouse, and other input/output devices via a special USB connector external to the computer chassis. In fact, although as many as 127 different USB devices may be daisy-chained together from one USB port, some computer designs feature connections to multiple USB ports. In addition to simultaneously supporting a large number of peripheral devices, USB also supports hot plugging of peripheral devices. A Universal Serial Bus operates using a central USB controller to arbiter and route all bus traffic. Though a computer may incorporate multiple USB ports, only one USB controller is necessary.
Some laptop computer systems are designed to connect to a docking station, also known as an expansion base. An expansion base is not actually a part of the laptop computer system per se, but is a separate unit that accommodates the laptop. The laptop electrically connects to the expansion base usually by way of a PCI bus, although other bus protocols are contemplated. Because of inherent size and weight restrictions, laptop computers tend to require design tradeoffs such as small keyboards and graphics displays, crude tracking devices, and a limited number of mass storage devices. The expansion base includes peripheral devices, such as a CD ROM drive and a keyboard, and thus turns the laptop computer into a desktop system. Accordingly, the laptop user can access valuable features such as additional peripheral components including a large graphics display, a traditional mouse and full-size keyboard, hard and floppy disk drives, CD ROM drives, Digital Video Disk (DVD) drives, and other peripheral components. An expansion base may also offer connections to a local area network (LAN), printer, and modem. Although intended primarily for desktop operation, the utilization of expansion bases has greatly enhanced the usability and comfort of laptop computer systems, especially when the laptop is used frequently in one location, such as in the home or office.
Because an expansion base duplicates some functions of a laptop computer, such as providing an additional hard drive, for example, the laptop must be designed to adjust for any incompatibilities with the expansion base devices. The Windows 95 Plug-and-Play standard, for instance, does not support more than two IDE controllers in one computer system. Hence, docking a multi-bay laptop with an expansion base may cause a conflict between the laptop primary IDE controller, the laptop secondary IDE controller, and the expansion base IDE controller. As a result, current computer designs must sacrifice either on the IDE controller in the laptop or the IDE controller in the expansion base. If the expansion base is designed without an IDE bus, then the laptop IDE devices which require loading magnetic media (i.e., CD's and floppy disks) may not be accessible while the laptop is docked. If the laptop is designed without a secondary IDE controller, however, it typically cannot offer the multi-bay configuration to support such peripherals as CD ROM and DVD drives, due to size and weight restrictions.
In addition, unexpected results may occur when integrating different types of peripheral components that comprise modem computers, due to the complexity of these systems. Compounding the problem is that existing hardware designs can not always anticipate the specific requirements of future operating system software releases, the software at the heart of the computer. If new operating systems such as Windows 98, for example, place unanticipated restrictions on certain combinations of peripheral devices, the current laptop configurations may encounter even more conflicts with docking stations.
Despite the apparent advantages an expansion base can offer to many laptop computer systems, docking a laptop to such a device may result in conflicts between expansion base peripherals and some laptop components. As a result, the computer user is required to choose between the enhanced interface offered by the expansion base and the advanced functionality offered by certain peripheral devices. To date, no one has designed a computer system that overcomes these deficiencies.